S3 ファイルゲートウェイの NFS ファイル共有をシステム起動時に自動マウントしてみた

S3 ファイルゲートウェイの NFS ファイル共有をシステム起動時に自動マウントしてみた

Clock Icon2024.11.08

こんにちは。テクニカルサポートチームのShiinaです。

はじめに

S3 ファイルゲートウェイの NFSファイル共有を利用する場合、コマンドでマウントして利用すると思います。
クライアント側となる EC2 インスタンスの再起動を行うとマウントが外れてしまいます。
毎回マウントを行うのは面倒ですよね。
今回は /etc/fstab にエントリーを追記してシステム起動時にマウントする設定をやってみました。

前提

  • S3 ファイルゲートウェイは作成済みであること
  • NFS プロトコルでファイル共有を作成していること
  • 今回検証に利用した S3 ファイルゲートウェイの IP アドレス、S3 バケット名、マウントパスは次の通りです。
    [gateway VM IP address]:172.31.15.2
    [S3 bucket name]:file-gateway-s3-test
    [mount path on your client]:/data

ゲートウェイの詳細-Storage-Gateway-ap-northeast-1-10-28-2024_02_37_PM

ファイル共有の詳細-Storage-Gateway-ap-northeast-1-10-28-2024_02_38_PM

やってみた

まずはマウントパスのディレクトリを作成し、手動でマウントしてみます。
マウントコマンドはコンソールから確認できるコマンドを利用しました。

ファイル共有の詳細-Storage-Gateway-ap-northeast-1-10-28-2024_02_38_PM (1)

sudo mkdir /data
sudo mount -t nfs -o nolock,hard 172.31.15.2:/file-gateway-s3-test /data
df -h

Filesystem                         Size  Used Avail Use% Mounted on
devtmpfs                           4.0M     0  4.0M   0% /dev
tmpfs                              475M     0  475M   0% /dev/shm
tmpfs                              190M  448K  190M   1% /run
/dev/xvda1                         8.0G  1.6G  6.4G  20% /
tmpfs                              475M     0  475M   0% /tmp
/dev/xvda128                        10M  1.3M  8.7M  13% /boot/efi
tmpfs                               95M     0   95M   0% /run/user/0
172.31.15.2:/file-gateway-s3-test  8.0E     0  8.0E   0% /data

/data へマウントされていることを確認できます。

システム起動時に自動マウントするために /etc/fstab にエントリーを追加します。

/etc/fstab
172.31.15.2:/file-gateway-s3-test /data nfs4 noresvport,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,nofail 0 0
  • マウントのオプション
    nfs4: ファイルゲートウェイでは NFSv3 と NFSv4 の両方をサポートしているため、NFS v4を使用します。
    noresvport: ネットワーク接続が再確立されたときに新しい TCP ソースポートを使用します。
    rsize=1048576,wsize=1048576: 読み書きのバッファサイズを最大に設定します。
    hard: サーバーが応答するまで NFS リクエストを無期限に再試行します。
    timeo=600: NFS リクエストのタイムアウト値を60秒に設定します。
    retrans=2: リクエストの再試行回数を2回に設定します。
    _netdev: ネットワークが有効になるまでマウントを遅延させます。
    nofail: マウントに失敗してもブート処理を続行します。
    0 0: ダンプフラグとパスチェック順序を指定します。

上記は NFS マウントに対して推奨される設定[1]を組み合わせたものです。
システムの再起動後もマウントを維持し、ネットワークの問題に対する耐性を高めるのに役立ちます。

設定後は一度アンマウントを行い、マウントの確認を実施します。

sudo umount /data
sudo mount -a

マウント時にエラーメッセージが出なければ正しく設定できています。

EC2 インスタンスを再起動してみます。
インスタンス-EC2-ap-northeast-1-10-28-2024_02_40_PM

自動でマウントされていることが確認できました。

sudo df -h

Filesystem                         Size  Used Avail Use% Mounted on
devtmpfs                           4.0M     0  4.0M   0% /dev
tmpfs                              475M     0  475M   0% /dev/shm
tmpfs                              190M  444K  190M   1% /run
/dev/xvda1                         8.0G  1.6G  6.4G  20% /
tmpfs                              475M     0  475M   0% /tmp
/dev/xvda128                        10M  1.3M  8.7M  13% /boot/efi
tmpfs                               95M     0   95M   0% /run/user/0
172.31.15.2:/file-gateway-s3-test  8.0E     0  8.0E   0% /data

まとめ

S3 ファイルゲートウェイの NFSファイル共有を NFS の推奨オプション設定を参考に /etc/fstab に設定してみました。

本記事が誰かのお役に立てれば幸いです。

参考

https://docs.aws.amazon.com/ja_jp/filegateway/latest/files3/GettingStartedAccessFileShare.html

脚注
  1. https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mounting-fs-nfs-mount-settings.html ↩︎

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.